<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">
<meta name="theme-color" content="#222">
<meta name="generator" content="Hexo 5.4.0">
  <link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png">
  <link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32-next.png">
  <link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16-next.png">
  <link rel="mask-icon" href="/images/logo.svg" color="#222">

<link rel="stylesheet" href="/css/main.css">


<link rel="stylesheet" href="/lib/font-awesome/css/font-awesome.min.css">

<script id="hexo-configurations">
    var NexT = window.NexT || {};
    var CONFIG = {"hostname":"adoontheway.gitee.io","root":"/","scheme":"Muse","version":"7.8.0","exturl":false,"sidebar":{"position":"left","display":"post","padding":18,"offset":12,"onmobile":false},"copycode":{"enable":false,"show_result":false,"style":null},"back2top":{"enable":true,"sidebar":false,"scrollpercent":false},"bookmark":{"enable":false,"color":"#222","save":"auto"},"fancybox":false,"mediumzoom":false,"lazyload":true,"pangu":false,"comments":{"style":"tabs","active":null,"storage":true,"lazyload":false,"nav":null},"algolia":{"hits":{"per_page":10},"labels":{"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}},"localsearch":{"enable":false,"trigger":"auto","top_n_per_article":1,"unescape":false,"preload":false},"motion":{"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}}};
  </script>

  <meta name="description" content="MongoDB状态监视相关">
<meta property="og:type" content="article">
<meta property="og:title" content="MongoDB状态监视工具">
<meta property="og:url" content="https://adoontheway.gitee.io/2019/06/12/mongomonitor/index.html">
<meta property="og:site_name" content="Ados">
<meta property="og:description" content="MongoDB状态监视相关">
<meta property="og:locale" content="zh_CN">
<meta property="article:published_time" content="2019-06-12T12:28:01.000Z">
<meta property="article:modified_time" content="2023-05-25T10:26:16.070Z">
<meta property="article:author" content="ado">
<meta property="article:tag" content="mongo">
<meta name="twitter:card" content="summary">

<link rel="canonical" href="https://adoontheway.gitee.io/2019/06/12/mongomonitor/">


<script id="page-configurations">
  // https://hexo.io/docs/variables.html
  CONFIG.page = {
    sidebar: "",
    isHome : false,
    isPost : true,
    lang   : 'zh-CN'
  };
</script>

  <title>MongoDB状态监视工具 | Ados</title>
  






  <noscript>
  <style>
  .use-motion .brand,
  .use-motion .menu-item,
  .sidebar-inner,
  .use-motion .post-block,
  .use-motion .pagination,
  .use-motion .comments,
  .use-motion .post-header,
  .use-motion .post-body,
  .use-motion .collection-header { opacity: initial; }

  .use-motion .site-title,
  .use-motion .site-subtitle {
    opacity: initial;
    top: initial;
  }

  .use-motion .logo-line-before i { left: initial; }
  .use-motion .logo-line-after i { right: initial; }
  </style>
</noscript>

</head>

<body itemscope itemtype="http://schema.org/WebPage">
  <div class="container use-motion">
    <div class="headband"></div>

    <header class="header" itemscope itemtype="http://schema.org/WPHeader">
      <div class="header-inner"><div class="site-brand-container">
  <div class="site-nav-toggle">
    <div class="toggle" aria-label="切换导航栏">
      <span class="toggle-line toggle-line-first"></span>
      <span class="toggle-line toggle-line-middle"></span>
      <span class="toggle-line toggle-line-last"></span>
    </div>
  </div>

  <div class="site-meta">

    <a href="/" class="brand" rel="start">
      <span class="logo-line-before"><i></i></span>
      <h1 class="site-title">Ados</h1>
      <span class="logo-line-after"><i></i></span>
    </a>
      <p class="site-subtitle" itemprop="description">a fullstack game worker</p>
  </div>

  <div class="site-nav-right">
    <div class="toggle popup-trigger">
    </div>
  </div>
</div>




<nav class="site-nav">
  <ul id="menu" class="menu">
        <li class="menu-item menu-item-home">

    <a href="/" rel="section"><i class="fa fa-fw fa-home"></i>首页</a>

  </li>
        <li class="menu-item menu-item-about">

    <a href="/about/" rel="section"><i class="fa fa-fw fa-user"></i>关于</a>

  </li>
        <li class="menu-item menu-item-tags">

    <a href="/tags/" rel="section"><i class="fa fa-fw fa-tags"></i>标签</a>

  </li>
        <li class="menu-item menu-item-archives">

    <a href="/archives/" rel="section"><i class="fa fa-fw fa-archive"></i>归档</a>

  </li>
  </ul>
</nav>




</div>
    </header>

    
  <div class="back-to-top">
    <i class="fa fa-arrow-up"></i>
    <span>0%</span>
  </div>

  <a href="https://github.com/adoontheway" class="github-corner" title="Follow me on GitHub" aria-label="Follow me on GitHub" rel="external nofollow noopener noreferrer" target="_blank"><svg width="80" height="80" viewbox="0 0 250 250" aria-hidden="true"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"/><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"/><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"/></svg></a>


    <main class="main">
      <div class="main-inner">
        <div class="content-wrap">
          

          <div class="content post posts-expand">
            

    
  
  
  <article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-CN">
    <link itemprop="mainEntityOfPage" href="https://adoontheway.gitee.io/2019/06/12/mongomonitor/">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="image" content="/images/avatar.png">
      <meta itemprop="name" content="ado">
      <meta itemprop="description" content="me, robot.">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="Ados">
    </span>
      <header class="post-header">
        <h1 class="post-title" itemprop="name headline">
          MongoDB状态监视工具
        </h1>

        <div class="post-meta">
            <span class="post-meta-item">
              <span class="post-meta-item-icon">
                <i class="fa fa-calendar-o"></i>
              </span>
              <span class="post-meta-item-text">发表于</span>

              <time title="创建时间：2019-06-12 20:28:01" itemprop="dateCreated datePublished" datetime="2019-06-12T20:28:01+08:00">2019-06-12</time>
            </span>
              <span class="post-meta-item">
                <span class="post-meta-item-icon">
                  <i class="fa fa-calendar-check-o"></i>
                </span>
                <span class="post-meta-item-text">更新于</span>
                <time title="修改时间：2023-05-25 18:26:16" itemprop="dateModified" datetime="2023-05-25T18:26:16+08:00">2023-05-25</time>
              </span>

          
            <span class="post-meta-item" title="阅读次数" id="busuanzi_container_page_pv" style="display: none;">
              <span class="post-meta-item-icon">
                <i class="fa fa-eye"></i>
              </span>
              <span class="post-meta-item-text">阅读次数：</span>
              <span id="busuanzi_value_page_pv"></span>
            </span>
            <div class="post-description">MongoDB状态监视相关</div>

        </div>
      </header>

    
    
    
    <div class="post-body" itemprop="articleBody">

      
        <h1 id="Preface"><a href="#Preface" class="headerlink" title="Preface"></a>Preface</h1><p>今天在研究MongDB分片集群是时候，突然发现连接到MongoDB的时候出现了这个提示：</p>
<blockquote>
<p>MongoDB shell version v4.0.10</p>
<p>Enable MongoDB’s free cloud-based monitoring service, which will then receive and display<br>metrics about your deployment (disk utilization, CPU, operation statistics, etc).</p>
<p>The monitoring data will be available on a MongoDB website with a unique URL accessible to you<br>and anyone you share the URL with. MongoDB may use this information to make product<br>improvements and to suggest MongoDB products and deployment options to you.</p>
<p>To enable free monitoring, run the following command: db.enableFreeMonitoring()</p>
<h2 id="To-permanently-disable-this-reminder-run-the-following-command-db-disableFreeMonitoring"><a href="#To-permanently-disable-this-reminder-run-the-following-command-db-disableFreeMonitoring" class="headerlink" title="To permanently disable this reminder, run the following command: db.disableFreeMonitoring()"></a>To permanently disable this reminder, run the following command: db.disableFreeMonitoring()</h2></blockquote>
<p>重点在这里：</p>
<blockquote>
<p>运行 db.enableFreeMonitoring() 可以激活免费的监视器</p>
</blockquote>
<h1 id="Content"><a href="#Content" class="headerlink" title="Content"></a>Content</h1><h2 id="db-enableFreeMonitoring"><a href="#db-enableFreeMonitoring" class="headerlink" title="db.enableFreeMonitoring"></a>db.enableFreeMonitoring</h2><p>于是本着研究与好奇的心里，运行了一下：</p>
<figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">db.enableFreeMonitoring() </span><br></pre></td></tr></table></figure>

<p>结果输出：</p>
<figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">&#123;</span><br><span class="line">     <span class="attr">&quot;state&quot;</span> : <span class="string">&quot;enabled&quot;</span>,</span><br><span class="line">     <span class="attr">&quot;message&quot;</span> : <span class="string">&quot;To see your monitoring data, navigate to the unique URL below. Anyone you share the URL with will also be able to view this page. You can disable monitoring at any time by running db.disableFreeMonitoring().&quot;</span>,</span><br><span class="line">     <span class="attr">&quot;url&quot;</span> : <span class="string">&quot;https://cloud.mongodb.com/freemonitoring/cluster/xxxxxxxx&quot;</span>,</span><br><span class="line">     <span class="attr">&quot;userReminder&quot;</span> : <span class="string">&quot;&quot;</span>,</span><br><span class="line">     <span class="attr">&quot;ok&quot;</span> : <span class="number">1</span></span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>



<p>然后，将这里的url用浏览器打开，就可以依次看到：</p>
<ul>
<li>Operation Execution Times : 操作执行次数，包括，读，写，命令三种操作的执行次数</li>
<li>Disk Utilization :  磁盘的利用率，包括所有磁盘的最大利用率，所有磁盘的平均利用率</li>
<li>Documents : 文档每秒的平均（查询返回，插入，更新，删除）率</li>
<li>Memory ： 常驻内存，MongoDB的虚拟内存，MongoDB的映射（Mapped）内存,映射内存基本上与数据库的占用尺寸接近。 WiredTiger不会用内存来映射文件，所以这里就会是0.</li>
<li>Network-Input/Output：流入字节数与流出字节数</li>
<li>Opcounters ：操作计数器，采样起见平均每秒的（插入，查询，更新，删除，获取更多GetMore,命令）的执行率</li>
<li>Opcounters-Replication ：操作计数器复制</li>
<li>Query Targeting：查询目标<ul>
<li>Scanned/Returned：</li>
<li>扫描对象/返回：</li>
</ul>
</li>
<li>Queues：<ul>
<li>Readers 等待读锁定的已入队操作数</li>
<li>Writers 等待写锁定的已入队操作数</li>
<li>Total  所有等待锁的已入队操作数</li>
</ul>
</li>
<li>System Cpu Usage：也就是系统的cup使用状态</li>
</ul>
<h2 id="Free-Monitoring"><a href="#Free-Monitoring" class="headerlink" title="Free Monitoring"></a>Free Monitoring</h2><p>MongoDB的<a target="_blank" rel="external nofollow noopener noreferrer" href="https://docs.mongodb.com/manual/reference/method/js-free-monitoring/">Free Monitoring</a> api主要有三个。</p>
<ul>
<li>db.disableFreeMonitoring() 禁用</li>
<li>db.enableFreeMonitoring() 激活</li>
<li>db.getFreeMonitoringStatus() 状态</li>
</ul>
<p>如上，都很好理解。</p>
<p>小小的调查了一下，似乎并不支持将Free Monitoring的结果输出到指定的页面。</p>
<h2 id="7个工具"><a href="#7个工具" class="headerlink" title="7个工具"></a>7个工具</h2><p><a target="_blank" rel="external nofollow noopener noreferrer" href="https://www.tecmint.com/monitor-mongodb-performance/">6个有用的MongDB性能监视工具</a></p>
<h3 id="Mongostat"><a href="#Mongostat" class="headerlink" title="Mongostat"></a>Mongostat</h3><h3 id="Mongotop"><a href="#Mongotop" class="headerlink" title="Mongotop"></a>Mongotop</h3><h3 id="serverStatus"><a href="#serverStatus" class="headerlink" title="serverStatus"></a>serverStatus</h3><p>也就是</p>
<figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">db.serverStatus()</span><br></pre></td></tr></table></figure>

<p>通过搜集统计当前Mongo实例，返回数据库的状态概览。</p>
<p>上面调查Free Monotoring是否可以修改输出地址的时候，导向的 metrics 相关属性就看到了。</p>
<h3 id="dbStats"><a href="#dbStats" class="headerlink" title="dbStats"></a>dbStats</h3><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">db.stats()</span><br></pre></td></tr></table></figure>

<p>返回的是指定数据库的存储统计信息</p>
<h3 id="collStats"><a href="#collStats" class="headerlink" title="collStats"></a>collStats</h3><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">db.runCommand(&#123;collStats:<span class="string">&quot;coll&quot;</span>, scale:1024&#125;)</span><br></pre></td></tr></table></figure>

<p>与 dbStats 类似，只不过级别是集合了，输出额外的包括了集合里的对象书，集合的尺寸，集合消耗的硬盘空间，以及他相关的索引信息。</p>
<h3 id="replSetGetStatus"><a href="#replSetGetStatus" class="headerlink" title="replSetGetStatus"></a>replSetGetStatus</h3><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">db.adminCommand(&#123;replSetGetStatus:1&#125;)</span><br></pre></td></tr></table></figure>




    </div>

    
    
    

      <footer class="post-footer">
          <div class="post-tags">
              <a href="/tags/mongo/" rel="tag"># mongo</a>
          </div>

        


        
    <div class="post-nav">
      <div class="post-nav-item">
    <a href="/2019/06/08/rocketmqprac/" rel="prev" title="Hello,RocketMQ">
      <i class="fa fa-chevron-left"></i> Hello,RocketMQ
    </a></div>
      <div class="post-nav-item">
    <a href="/2019/06/20/githelper/" rel="next" title="一些问题">
      一些问题 <i class="fa fa-chevron-right"></i>
    </a></div>
    </div>
      </footer>
    
  </article>
  
  
  



          </div>
          

<script>
  window.addEventListener('tabs:register', () => {
    let { activeClass } = CONFIG.comments;
    if (CONFIG.comments.storage) {
      activeClass = localStorage.getItem('comments_active') || activeClass;
    }
    if (activeClass) {
      let activeTab = document.querySelector(`a[href="#comment-${activeClass}"]`);
      if (activeTab) {
        activeTab.click();
      }
    }
  });
  if (CONFIG.comments.storage) {
    window.addEventListener('tabs:click', event => {
      if (!event.target.matches('.tabs-comment .tab-content .tab-pane')) return;
      let commentClass = event.target.classList[1];
      localStorage.setItem('comments_active', commentClass);
    });
  }
</script>

        </div>
          
  
  <div class="toggle sidebar-toggle">
    <span class="toggle-line toggle-line-first"></span>
    <span class="toggle-line toggle-line-middle"></span>
    <span class="toggle-line toggle-line-last"></span>
  </div>

  <aside class="sidebar">
    <div class="sidebar-inner">

      <ul class="sidebar-nav motion-element">
        <li class="sidebar-nav-toc">
          文章目录
        </li>
        <li class="sidebar-nav-overview">
          站点概览
        </li>
      </ul>

      <!--noindex-->
      <div class="post-toc-wrap sidebar-panel">
          <div class="post-toc motion-element"><ol class="nav"><li class="nav-item nav-level-1"><a class="nav-link" href="#Preface"><span class="nav-number">1.</span> <span class="nav-text">Preface</span></a><ol class="nav-child"><li class="nav-item nav-level-2"><a class="nav-link" href="#To-permanently-disable-this-reminder-run-the-following-command-db-disableFreeMonitoring"><span class="nav-number">1.1.</span> <span class="nav-text">To permanently disable this reminder, run the following command: db.disableFreeMonitoring()</span></a></li></ol></li><li class="nav-item nav-level-1"><a class="nav-link" href="#Content"><span class="nav-number">2.</span> <span class="nav-text">Content</span></a><ol class="nav-child"><li class="nav-item nav-level-2"><a class="nav-link" href="#db-enableFreeMonitoring"><span class="nav-number">2.1.</span> <span class="nav-text">db.enableFreeMonitoring</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#Free-Monitoring"><span class="nav-number">2.2.</span> <span class="nav-text">Free Monitoring</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#7%E4%B8%AA%E5%B7%A5%E5%85%B7"><span class="nav-number">2.3.</span> <span class="nav-text">7个工具</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#Mongostat"><span class="nav-number">2.3.1.</span> <span class="nav-text">Mongostat</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#Mongotop"><span class="nav-number">2.3.2.</span> <span class="nav-text">Mongotop</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#serverStatus"><span class="nav-number">2.3.3.</span> <span class="nav-text">serverStatus</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#dbStats"><span class="nav-number">2.3.4.</span> <span class="nav-text">dbStats</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#collStats"><span class="nav-number">2.3.5.</span> <span class="nav-text">collStats</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#replSetGetStatus"><span class="nav-number">2.3.6.</span> <span class="nav-text">replSetGetStatus</span></a></li></ol></li></ol></li></ol></div>
      </div>
      <!--/noindex-->

      <div class="site-overview-wrap sidebar-panel">
        <div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
    <img class="site-author-image" itemprop="image" alt="ado" src="/images/avatar.png">
  <p class="site-author-name" itemprop="name">ado</p>
  <div class="site-description" itemprop="description">me, robot.</div>
</div>
<div class="site-state-wrap motion-element">
  <nav class="site-state">
      <div class="site-state-item site-state-posts">
          <a href="/archives/">
        
          <span class="site-state-item-count">94</span>
          <span class="site-state-item-name">日志</span>
        </a>
      </div>
      <div class="site-state-item site-state-tags">
            <a href="/tags/">
          
        <span class="site-state-item-count">60</span>
        <span class="site-state-item-name">标签</span></a>
      </div>
  </nav>
</div>
  <div class="links-of-author motion-element">
      <span class="links-of-author-item">
        <a href="https://github.com/adoontheway" title="GitHub → https:&#x2F;&#x2F;github.com&#x2F;adoontheway" rel="external nofollow noopener noreferrer" target="_blank"><i class="fa fa-fw fa-github"></i>GitHub</a>
      </span>
      <span class="links-of-author-item">
        <a href="https://gitee.com/adoontheway" title="Gitee → https:&#x2F;&#x2F;gitee.com&#x2F;adoontheway" rel="external nofollow noopener noreferrer" target="_blank"><i class="fa fa-fw fa-github"></i>Gitee</a>
      </span>
      <span class="links-of-author-item">
        <a href="http://cnblogs.com/adoontheway" title="Cnblogs → http:&#x2F;&#x2F;cnblogs.com&#x2F;adoontheway" rel="external nofollow noopener noreferrer" target="_blank"><i class="fa fa-fw fa-cnblogs"></i>Cnblogs</a>
      </span>
      <span class="links-of-author-item">
        <a href="https://legacy.gitbook.com/@adobeattheworld" title="Gitbook → https:&#x2F;&#x2F;legacy.gitbook.com&#x2F;@adobeattheworld" rel="external nofollow noopener noreferrer" target="_blank"><i class="fa fa-fw fa-gitbook"></i>Gitbook</a>
      </span>
  </div>



      </div>

    </div>
  </aside>
  <div id="sidebar-dimmer"></div>


      </div>
    </main>

    <footer class="footer">
      <div class="footer-inner">
        

        

<div class="copyright">
  
  &copy; 
  <span itemprop="copyrightYear">2023</span>
  <span class="with-love">
    <i class="fa fa-user"></i>
  </span>
  <span class="author" itemprop="copyrightHolder">ado</span>
</div>
  <div class="powered-by">由 <a href="https://hexo.io/" class="theme-link" rel="external nofollow noopener noreferrer" target="_blank">Hexo</a> & <a href="https://muse.theme-next.org/" class="theme-link" rel="external nofollow noopener noreferrer" target="_blank">NexT.Muse</a> 强力驱动
  </div>



        
<div class="busuanzi-count">
  <script async src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
    <span class="post-meta-item" id="busuanzi_container_site_uv" style="display: none;">
      <span class="post-meta-item-icon">
        <i class="fa fa-user"></i>
      </span>
      <span class="site-uv" title="总访客量">
        <span id="busuanzi_value_site_uv"></span>
      </span>
    </span>
    <span class="post-meta-divider">|</span>
    <span class="post-meta-item" id="busuanzi_container_site_pv" style="display: none;">
      <span class="post-meta-item-icon">
        <i class="fa fa-eye"></i>
      </span>
      <span class="site-pv" title="总访问量">
        <span id="busuanzi_value_site_pv"></span>
      </span>
    </span>
</div>








      </div>
    </footer>
  </div>

  
  <script src="/lib/anime.min.js"></script>
  <script src="//fastly.jsdelivr.net/npm/lozad@1/dist/lozad.min.js"></script>
  <script src="/lib/velocity/velocity.min.js"></script>
  <script src="/lib/velocity/velocity.ui.min.js"></script>

<script src="/js/utils.js"></script>

<script src="/js/motion.js"></script>


<script src="/js/schemes/muse.js"></script>


<script src="/js/next-boot.js"></script>




  











<script>
document.querySelectorAll('.pdfobject-container').forEach(element => {
  let url = element.dataset.target;
  let pdfOpenParams = {
    navpanes : 0,
    toolbar  : 0,
    statusbar: 0,
    pagemode : 'thumbs',
    view     : 'FitH'
  };
  let pdfOpenFragment = '#' + Object.entries(pdfOpenParams).map(([key, value]) => `${key}=${encodeURIComponent(value)}`).join('&');
  let fullURL = `/lib/pdf/web/viewer.html?file=${encodeURIComponent(url)}${pdfOpenFragment}`;

  if (NexT.utils.supportsPDFs()) {
    element.innerHTML = `<embed class="pdfobject" src="${url + pdfOpenFragment}" type="application/pdf" style="height: ${element.dataset.height};">`;
  } else {
    element.innerHTML = `<iframe src="${fullURL}" style="height: ${element.dataset.height};" frameborder="0"></iframe>`;
  }
});
</script>


<script>
if (document.querySelectorAll('pre.mermaid').length) {
  NexT.utils.getScript('//unpkg.com/mermaid@8.14.0/dist/mermaid.min.js', () => {
    mermaid.initialize({
      theme    : '',
      logLevel : 3,
      flowchart: { curve     : 'linear' },
      gantt    : { axisFormat: '%m/%d/%Y' },
      sequence : { actorMargin: 50 }
    });
  }, window.mermaid);
}
</script>


  

  

</body>
</html>
